package cn.edu.ncu.housinghub.service;

import cn.edu.ncu.housinghub.dto.request.agent.ApplyAgentHouse;
import cn.edu.ncu.housinghub.entity.house.House;
import cn.edu.ncu.housinghub.entity.user.Agent;
import cn.edu.ncu.housinghub.vo.Result;
import jakarta.validation.constraints.NotNull;

import java.util.List;

public interface AgentRentalService {
    /**
     * 获取所有可代理的房源信息
     */
    List<House> getAllAgentRentalHouse();

    /**
     * 获取某个中介代理的所有房源信息
     */
    List<House> getAllAgentHouse(Long userId);
    /**
     * 查看某个中介正在代理的所有房源
     * @param
     * @return
     */
    List<House> getAllAgentingHouse(Long userId);

    /**
     * 查看某个中介已经出租的所有房源
     * @param
     * @return
     */
    List<House> getAllAgentRentedHouse(Long userId);

    /**
     * 根据userId查询中介信息
     * @param
     * @return
     */
    Agent getAgentInfoByUserId(Long userId);

    /**
     * 向房东发起代理某个房源
     * @param houseId
     * @param applyAgentHouse
     * @return
     */
    Result applyAgentHouse(Long houseId, ApplyAgentHouse applyAgentHouse);
}
